/*
 Problem Description
多边形形状的一块地，原本是linle 的，现在就准备送给你了。
不过，任何事情都没有那么简单，你必须首先告诉我这块地到底有多少面积，如果回答正确才能真正得到这块地。
发愁了吧？就是要让你知道，种地也是需要AC知识的！以后还是好好练吧...
Input
输入数据包含多个测试实例，每个测试实例占一行，每行的开始是一个整数n(3<=n<=100)，它表示多边形的边数（当然也是顶点数），
然后是按照逆时针顺序给出的n个顶点的坐标（x1, y1, x2, y2... xn, yn）,为了简化问题，这里的所有坐标都用整数表示。
输入数据中所有的整数都在32位整数范围内，n=0表示数据的结束，不做处理。
Output
对于每个测试实例，请输出对应的多边形面积，结果精确到小数点后一位小数。
每个实例的输出占一行。
Sample Input
3 0 0 1 0 0 1
4 1 0 0 1 -1 0 0 -1
0
Sample Output
0.5
2.0
------------------------------------------------------------------------------------
 解题思路：叉乘的运用 
 原理是在平面上取(0,0)来分割多边形为多个三角形，然后用叉乘来求三角形的面积（有向）再求和。
 这样的话可以把凸N多边形转化为N个三角形，然后求解N个三角形即可，输入顶点的顺序无论是顺时针还是逆时针均可。
 * 题目要求：计算多边形面积
 * 方法：把n多边形分割成n-2个三角形，分别求和，然后相加
 * 注意：分割的所有三角形有一个公共的顶点，这里选择0点位公共点 
 * 注：题中给出的点的顺序为逆时
 * 叉乘的性质：设两向量P和Q 
 * 1.P ×Q > 0 则Q在P的逆时针方向 
 * 2.P ×Q < 0 则Q在P的顺时针方向
 * 3.P ×Q = 0 则Q和P共线，方向可能相同也可能不相同 
之所以不用海伦公式：有一个三角形，边长分别为a、b、c，三角形的面积S可由以下公式求得：S=√[p(p-a)(p-b)(p-c)] 
而公式里的p为半周长： p=(a+b+c)/2
是由于1：计算量大。2：精度损失
 */
package com.yuan.algorithms.training20150719;

import java.util.Scanner;

class point {
	int x, y;
}

public class 改革春风吹满地 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			int n = sc.nextInt();
			if (n == 0) {
				break;
			}
			point[] arr = new point[n];
			for (int i = 0; i < arr.length; i++) {
				arr[i] = new point();
			}
			double sum = 0;
			for (int i = 0; i < n; i++) {
				arr[i].x = sc.nextInt();
				arr[i].y = sc.nextInt();
			}
			for (int i = 1; i < n; i++) {
				sum += area(arr[i - 1], arr[i]);
			}
			sum += area(arr[n - 1], arr[0]);// 计算最后两点组成的三角形的面积
			System.out.printf("%.1f", sum * 0.5);
			System.out.println();
		}
	}

	/**
	 * 根据两点的坐标计算以原点为中心的三角形有向面积 返回的是面积的两倍
	 * 
	 * @param p1
	 * @param p2
	 * @return
	 */
	private static double area(point p1, point p2) {
		return p1.x * p2.y - p2.x * p1.y;
	}

}
